]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
2 years agost/drawing-area: Merge ClutterCanvas to StDrawingArea
Shmuel Melamud [Tue, 9 Jan 2024 02:51:31 +0000 (04:51 +0200)]
st/drawing-area: Merge ClutterCanvas to StDrawingArea

Since StDrawingArea is the only user of ClutterCanvas, it is possible
to move ClutterCanvas completely out of Mutter to gnome-shell. This
allows to remove another Cairo dependency from Mutter.

This patch merges ClutterCanvas code extracted from Mutter to
StDrawingArea.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3098>

2 years agopopupMenu/switch: Follow "show-status-shapes" setting
Florian Müllner [Wed, 10 Jan 2024 18:53:58 +0000 (19:53 +0100)]
popupMenu/switch: Follow "show-status-shapes" setting

Whether or not switches include shapes to indicate their ON/OFF
state is currently controlled by the stylesheet.

However there are use cases for both using the HighContrast style
without shapes, and for using shapes with the regular styesheet,
so follow the newly added "show-status-shapes" setting instead.

https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2675

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3107>

2 years agopopupMenu/switch: Use icons for state indicators
Florian Müllner [Wed, 10 Jan 2024 18:45:59 +0000 (19:45 +0100)]
popupMenu/switch: Use icons for state indicators

The indicators are currently part of the background image in the
high contrast theme. Using symbolic icons instead allows separating
the switch shapes from the high-contrast setting in the future.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3107>

2 years agodata: Strip blanks from SVG icons
Florian Müllner [Fri, 12 Jan 2024 15:33:22 +0000 (16:33 +0100)]
data: Strip blanks from SVG icons

The size reduction will be modest, but given that there's no downside,
it's still a good idea.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3107>

2 years agoci: Bump mutter image
Florian Müllner [Wed, 10 Jan 2024 19:30:45 +0000 (20:30 +0100)]
ci: Bump mutter image

... to pull in an up-to-date gsettings-desktop-schemas version.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3107>

2 years agobuild: Make g-ir-scanner warnings fatal when werror is set
Florian Müllner [Tue, 16 Jan 2024 12:30:36 +0000 (13:30 +0100)]
build: Make g-ir-scanner warnings fatal when werror is set

This should help catching problems with introspection in CI.

Adapted from Sebastian Wick's corresponding mutter change
in https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3528.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3121>

2 years agostatus/backlight: Do only one dbus call per local change
Barnabás Pőcze [Tue, 16 Jan 2024 22:41:24 +0000 (23:41 +0100)]
status/backlight: Do only one dbus call per local change

The values of the two control widgets are syncronized, meaning
that both emit signals when the local value changes, regardless
which one is visible and is actually used by the user.

This is not ideal because it leads to two dbus calls
per local change. To alleviate this, only consider
changes from the widget that is visible.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3086>

2 years agostatus/backlight: Fix keyboard backlight infinite loop
Barnabás Pőcze [Wed, 3 Jan 2024 02:04:46 +0000 (03:04 +0100)]
status/backlight: Fix keyboard backlight infinite loop

The logic could enter an infinite loop because it tried to
propagate local changes to g-s-d that were caused by signals sent
by g-s-d. For example:

  1. slider is set to 50
  2. Set(50) dbus call is sent
  3. slider is set to 51
  4. Set(51) dbus call is sent
  5. PropertiesChanged arrives due to Set(50)
  6. this._sliderItem.value is set to 50
  7. notify::value is emitted from this._sliderItem
  8. Set(50) dbus call is sent
  9. PropertiesChanged arrives due to Set(51)
 10. this._sliderItem.value is set to 51
 11. notify::value is emitted from this._sliderItem
 12. Set(51) dbus call is sent

To alleviate this issue, block signal handlers when the local state is
changed due to a remote event.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7111

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3086>

2 years agoUpdate Punjabi translation
A S Alam [Tue, 16 Jan 2024 13:35:23 +0000 (13:35 +0000)]
Update Punjabi translation

2 years agostyle: Add lockscreen style to entry drawing mixin
Sam Hewitt [Mon, 15 Jan 2024 14:09:42 +0000 (10:39 -0330)]
style: Add lockscreen style to entry drawing mixin

- include style condition to entry drawing mixin to accommodate transparent bg on lockscreen
- see https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6802 and https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3109#note_1970652

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7326
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3118>

2 years agocloseDialog: Close existing dialogs on shutdown
Florian Müllner [Mon, 15 Jan 2024 13:39:59 +0000 (14:39 +0100)]
closeDialog: Close existing dialogs on shutdown

Otherwise mutter will request to hide the dialog when the meta
context is destroyed, but at the JS context has already shut down,
resulting in a crash.

Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7328

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3117>

2 years agotools/toolbox: Add `meson test` convenience wrapper
Florian Müllner [Fri, 12 Jan 2024 13:48:11 +0000 (14:48 +0100)]
tools/toolbox: Add `meson test` convenience wrapper

It can be fairly tedious to enter a toolbox and invoke `meson test`
with the right build directory, so add a companion script to the
existing meson-build.sh to handle that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3114>

2 years agotools/toolbox: Expose --wipe meson flag
Florian Müllner [Fri, 12 Jan 2024 13:28:03 +0000 (14:28 +0100)]
tools/toolbox: Expose --wipe meson flag

It's useful when the existing build directory became invalid,
for instance after a meson update, and exposing it directly
from the wrapper script is more convenient than removing the
directory or entering the toolbox manually to invoke meson.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3113>

2 years agotools/toolbox: Consistently handle option parsing failures
Florian Müllner [Fri, 12 Jan 2024 11:17:17 +0000 (12:17 +0100)]
tools/toolbox: Consistently handle option parsing failures

`getopt` already prints a message on parse errors, but it still
seems like good style to point to --help as we do elsewhere.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3113>

2 years agotools/toolbox: Consistently abort on failure
Florian Müllner [Fri, 12 Jan 2024 13:37:27 +0000 (14:37 +0100)]
tools/toolbox: Consistently abort on failure

Unlike the other scripts, meson-build currently doesn't set
the `-e` option. The script is mainly a wrapper around a single
toolbox call, but it means that any errors during option parsing
print a warning, but are otherwise ignored.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3113>

2 years agoextensions-app: Remember window state
Florian Müllner [Sat, 13 Jan 2024 22:34:00 +0000 (23:34 +0100)]
extensions-app: Remember window state

It's good practice to save and reload the window size and
maximization state, and easy enough to implement, so let's
do that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3115>

2 years agoUpdate Persian translation
Danial Behzadi [Sat, 13 Jan 2024 00:49:29 +0000 (00:49 +0000)]
Update Persian translation

2 years agotests: Add fittsy test
Florian Müllner [Thu, 11 Jan 2024 18:01:46 +0000 (19:01 +0100)]
tests: Add fittsy test

Both the dash and top bar items are expected to extend to the
screen edge, to make them easier click targets according to
Fitts' law.

This has the tendency to break fairly regularly, so add a small
test that checks the Fittsiness of the show-apps and activities
buttons to catch regressions.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7318
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3111>

2 years agostyle: Fix panel and dash to account for mouse travel
Sam Hewitt [Thu, 11 Jan 2024 23:12:08 +0000 (19:42 -0330)]
style: Fix panel and dash to account for mouse travel

- rework overview-icon styles for the dash so they extend to the edge of the screen once again
- revert changes to panel_button mixin
- rework panel_button mixin to be more flexible
- fixes #7318

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3112>

2 years agonotificationDaemon: Stop special-casing Empathy
Florian Müllner [Thu, 11 Jan 2024 15:22:38 +0000 (16:22 +0100)]
notificationDaemon: Stop special-casing Empathy

Our telepathy component has been optional for years, and it is
disabled by default on major distros, so we cannot assume that
it handles any particular notifications.

Plus Empathy itself is mostly dead, so it's unlikely to be used
much anymore anyway.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3110>

2 years agostyle: Refactor the button and entry drawing css
Sam Hewitt [Thu, 11 Jan 2024 01:51:11 +0000 (22:21 -0330)]
style: Refactor the button and entry drawing css

- use a single button mixin for all buttons with a saner 'style' parameter
- rework the entry mixins to be similar to the buttons'
- clear out all unused or deprecated mixins
- create some drawing functions for focus ring and high contrast inset
- replace instances of old mixins with the new

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3109>

2 years agoUpdate Hungarian translation
Balázs Meskó [Thu, 11 Jan 2024 19:22:15 +0000 (19:22 +0000)]
Update Hungarian translation

(cherry picked from commit b3690409929c425b1b9afeb297d38e517d0af8fd)

2 years agodata: Remove gnome-shell.portal
Georges Basile Stavracas Neto [Wed, 10 Jan 2024 15:08:45 +0000 (12:08 -0300)]
data: Remove gnome-shell.portal

Now that xdg-desktop-portal-gnome implements the Access portal
interface, GNOME Shell doesn't have to be the portal backend for
that anymore.

The D-Bus implementation is still preserved, because internally,
xdg-desktop-portal-gnome may still proxy the Access call to GNOME
Shell when the parent window is not available. That's a private
exchange between xdg-desktop-portal-gnome and GNOME Shell though,
and doesn't require GNOME Shell to be a full portal backend.

See https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/merge_requests/140

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3106>

2 years agooverviewControls: Subclass layout manager directly
Florian Müllner [Wed, 10 Jan 2024 11:02:10 +0000 (12:02 +0100)]
overviewControls: Subclass layout manager directly

All the ControlsManagerLayout uses from BoxLayout is the spacing
property, both size requests and allocation are completely custom.

That makes subclassing really questionable, so stop doing that
and just hook up to the `spacing` style property manually.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3104>

2 years agost/settings: Don't notify "icon-theme" on "high-contrast" changes
Florian Müllner [Wed, 10 Jan 2024 14:56:52 +0000 (15:56 +0100)]
st/settings: Don't notify "icon-theme" on "high-contrast" changes

Since commit e831a924, the two are no longer linked.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3105>

2 years agomountOperation: Close when drive gets disconnected
Florian Müllner [Thu, 4 Jan 2024 13:39:45 +0000 (14:39 +0100)]
mountOperation: Close when drive gets disconnected

If the volume that corresponds to the mount operation has an
associated drive, we should withdraw any pending dialogs or
notifications when the drive gets physically disconnected,
as they've become obsolete.

Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7302

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3089>

2 years agocalendar: Stylesheet follow-ups and fixes
Sam Hewitt [Tue, 9 Jan 2024 18:36:59 +0000 (15:06 -0330)]
calendar: Stylesheet follow-ups and fixes

- drop extraneous calendar-day style_class on week headings
- fix wrong variable in insensitive button mixin
- add some missing focus styles to calendar month header
- fix the asset for today with-events in light theme
- adjust HighContrast visuals for other month days
- make pager buttons circular

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3102>

2 years agostyle: Use system base color for screenshot overview
Sam Hewitt [Thu, 28 Dec 2023 19:48:55 +0000 (16:18 -0330)]
style: Use system base color for screenshot overview

- Fixes #7289

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3084>

2 years agostyle: Clean up color definitions and High Contrast
Sam Hewitt [Mon, 8 Jan 2024 17:35:09 +0000 (14:05 -0330)]
style: Clean up color definitions and High Contrast

- clean out unused colors; add desaturated light color
- remove long unused drawing functions; add high contrast color mixin
- de-duplicate and move common colors to a default-colors stylesheet
- rework how HighContrast is defined; clean up HC cruft
- bring over named color defines and other colors from libadwaita
- change how panel colors are defined

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3097>

2 years agoshell/tray-icon: Adapt to moved xwindow property to XWindow
Bilal Elmoussaoui [Wed, 22 Nov 2023 10:09:01 +0000 (11:09 +0100)]
shell/tray-icon: Adapt to moved xwindow property to XWindow

Associated merge request:
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3211

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3026>

2 years agostyle: Card style rework for light scheme
Sam Hewitt [Wed, 27 Dec 2023 18:29:34 +0000 (14:59 -0330)]
style: Card style rework for light scheme

- clean up button mixin
- add new card-specific styles and colors
- fixes #7153

2 years agostyle: Update panel_button mixin to have HighContrast support
Sam Hewitt [Fri, 22 Dec 2023 21:24:49 +0000 (17:54 -0330)]
style: Update panel_button mixin to have HighContrast support

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3076>

2 years agostyle: Change text styles in calendar popover for better visibility
Sam Hewitt [Fri, 22 Dec 2023 20:45:25 +0000 (17:15 -0330)]
style: Change text styles in calendar popover for better visibility

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3076>

2 years agostyle: Change insensitive style on quick settings submenu
Sam Hewitt [Fri, 22 Dec 2023 20:25:20 +0000 (16:55 -0330)]
style: Change insensitive style on quick settings submenu

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3076>

2 years agostyle: Fix HighContrast issues with notifications
Sam Hewitt [Fri, 22 Dec 2023 14:47:27 +0000 (11:17 -0330)]
style: Fix HighContrast issues with notifications

- define a new hc_mix_color for mixing functions that was making bg color transparent
- fix missing HC outline on banner notifications
- fix notification timestamp not changing in HC due to color
- closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7283

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3075>

2 years agoappDisplay: CSS cleanup & fixes for app dialog
Sam Hewitt [Tue, 5 Dec 2023 20:01:47 +0000 (16:31 -0330)]
appDisplay: CSS cleanup & fixes for app dialog

- change the container and dialog actor alignments
- pad the container to not have dialog overlap panel
- clean up extraneous app-folder css

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3044>

2 years agobuild: Enable no-omit-frame-pointer for all non-plain builds
robert.mader@collabora.com [Tue, 10 Oct 2023 02:17:51 +0000 (04:17 +0200)]
build: Enable no-omit-frame-pointer for all non-plain builds

To mirror Mutter.

This is useful for local installations with e.g. the `release`
buildtype.
Further more, Fedora has been doing the same system wide and it
apparently was helpful in various ways.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2982>

2 years agost/viewport: Queue only redraw when StAdjustment value changes
Julian Sparber [Fri, 15 Dec 2023 18:25:52 +0000 (18:25 +0000)]
st/viewport: Queue only redraw when StAdjustment value changes

It's enough to redraw the actor. Also the actor may be already in a relayout cycle
when the StAdjustment value changes which is bad.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3059>

2 years agostyle: Update panel styles to use appropriately contrasty text color
Sam Hewitt [Mon, 18 Dec 2023 15:15:28 +0000 (11:45 -0330)]
style: Update panel styles to use appropriately contrasty text color

- new always light fg color definition
- update panel button style to use new fg color
- fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7270

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3063>

2 years agoUpdate Turkish translation
Sabri Ünal [Mon, 8 Jan 2024 16:58:25 +0000 (16:58 +0000)]
Update Turkish translation

2 years agoUpdate Russian translation
Artur S0 [Mon, 8 Jan 2024 13:44:30 +0000 (13:44 +0000)]
Update Russian translation

2 years agoUpdate Georgian translation
Ekaterine Papava [Mon, 8 Jan 2024 08:50:15 +0000 (08:50 +0000)]
Update Georgian translation

2 years agoBump version to 46.alpha
Florian Müllner [Sat, 6 Jan 2024 21:19:25 +0000 (22:19 +0100)]
Bump version to 46.alpha

Update NEWS.

2 years agoBump mutter API version
Florian Müllner [Sat, 6 Jan 2024 21:32:15 +0000 (22:32 +0100)]
Bump mutter API version

We forgot to do this when branching, so let's get it done now
before the alpha release.

2 years agoextensions-app: Only change state if necessary
Florian Müllner [Fri, 5 Jan 2024 09:52:08 +0000 (10:52 +0100)]
extensions-app: Only change state if necessary

The `state-set` signal is emitted to change the underlying state,
which can have two reasons:

 1. the user toggled the switch
 2. the extension's `enabled` state changed externally

In the second case, calling enable/disable is pointless at best,
and can mess up the expected state by permanently disabling an
extension that was disabled because of the global kill switch.

Address this by only calling enable/disable if the new state does
not already match the current value of the `enabled` property.

Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7305

Fixes: fec523f83f ("extensions-app: Use new 'enabled' property")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3090>

2 years agoUpdate Thai translation
Aefgh Threenine [Sun, 7 Jan 2024 00:09:30 +0000 (00:09 +0000)]
Update Thai translation

2 years agoUpdate Thai translation
Aefgh Threenine [Sat, 6 Jan 2024 23:55:36 +0000 (23:55 +0000)]
Update Thai translation

2 years agolookingGlass: Use Cogl.Pipeline.new to construct new pipelines
Sebastian Wick [Fri, 15 Dec 2023 15:36:47 +0000 (16:36 +0100)]
lookingGlass: Use Cogl.Pipeline.new to construct new pipelines

new Cogl.Pipeline now constructs a GObject via g_object_new and not via
cogl_pipeline_new. Construction via g_object_new requires a some
construct only parameters so either way, this call doesn't work anymore.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3144
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3057>

2 years agoshell/util: Drop unused capture_images() function
Florian Müllner [Fri, 5 Jan 2024 10:46:59 +0000 (11:46 +0100)]
shell/util: Drop unused capture_images() function

It hasn't been used since commit 757e4b6731, so drop it. This
also avoids a warning when generating the typelib that was
introduced in commit f48729f6e.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3091>

2 years agotray: Adapt to meta_x11_error_* removal
Bilal Elmoussaoui [Wed, 3 Jan 2024 15:13:41 +0000 (16:13 +0100)]
tray: Adapt to meta_x11_error_* removal

By switching to use the mtk helpers instead

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3087>

2 years agoextensionSystem: Improve error formatting
Philip Chimento [Wed, 3 Jan 2024 00:29:08 +0000 (16:29 -0800)]
extensionSystem: Improve error formatting

This exposes the formatted error with stack trace and proper location of
SyntaxErrors over the bus, instead of just the message.

<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3041>

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3041>

2 years agoinit: Improve error message formatting
Philip Chimento [Mon, 1 Jan 2024 00:13:25 +0000 (19:13 -0500)]
init: Improve error message formatting

Instead of manually formatting the error message and stack, use the same
formatting mechanism as we do when displaying errors to the user that
occur while opening extension preferences. This should correctly
indicate where syntax errors from imported modules occur.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3041>

2 years agoscripting: Use logError to format error stack
Philip Chimento [Mon, 1 Jan 2024 00:08:20 +0000 (19:08 -0500)]
scripting: Use logError to format error stack

Instead of manually formatting the error stack, use logError() to
display the error. logError() displays the stack already.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3041>

2 years agodbusServices/extensions: Improve error message formatting
Philip Chimento [Sat, 2 Dec 2023 18:27:20 +0000 (10:27 -0800)]
dbusServices/extensions: Improve error message formatting

See https://gitlab.gnome.org/GNOME/gjs/-/issues/584 for a user report.

This uses the new formatter added in the previous commit to format
errors in the extension preferences loader.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3041>

2 years agomain: Improve error formatting in logError()
Philip Chimento [Wed, 3 Jan 2024 00:24:13 +0000 (16:24 -0800)]
main: Improve error formatting in logError()

We override GJS's default logError(). This adds the improved formatting
of error stack traces that gjs-console would otherwise do as part of
logError().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3041>

2 years agojs: Add utility to improve error message formatting
Philip Chimento [Wed, 3 Jan 2024 00:16:00 +0000 (16:16 -0800)]
js: Add utility to improve error message formatting

Previously, when we formatted SyntaxErrors with toString(), they
wouldn't display the file/line/column where the syntax error occurred.
This adds a utility function that performs a more comprehensive
formatting that displays location information for SyntaxErrors, as well
as the .cause property of the error if it is present. This formatting is
equivalent to what we do in gjs-console when logging an error.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3041>

2 years agojs: Alphabetize JS resources
Philip Chimento [Sun, 31 Dec 2023 23:43:16 +0000 (18:43 -0500)]
js: Alphabetize JS resources

These look like they are supposed to be alphabetized, but are not quite.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3041>

2 years agoutil: Adapt to ClutterCapture removal
Bilal Elmoussaoui [Thu, 4 Jan 2024 08:18:41 +0000 (09:18 +0100)]
util: Adapt to ClutterCapture removal

It is not used anywhere by Mutter itself so move it here

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3088>

2 years agoscreenshot: Expand window contents
Florian Müllner [Thu, 28 Dec 2023 09:34:33 +0000 (10:34 +0100)]
screenshot: Expand window contents

More fallout from commit c290a38730eb2 …

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7287

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3083>

2 years agoextensions-tool/list: Allow filtering by (in)active state
Florian Müllner [Thu, 21 Dec 2023 22:16:18 +0000 (23:16 +0100)]
extensions-tool/list: Allow filtering by (in)active state

This brings back the filtering that the `--enable`/`--disable`
flags used to do, which can be useful as well.

For instance

  $ gnome-extensions list --active

to show all extensions currently in use, or

  $ gnome-extensions list --enabled --inactive

for extensions that are inactive despite being enabled.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>

2 years agoextensions-tool/list: Use new `enabled` property for filtering
Florian Müllner [Thu, 21 Dec 2023 20:06:20 +0000 (21:06 +0100)]
extensions-tool/list: Use new `enabled` property for filtering

The new property is a better match for the `--enabled`/`--disabled`
flags, not least because both are used for completions to the
`enable` and `disable` commands.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>

2 years agoextensions-tool: Include enabled info in details
Florian Müllner [Thu, 21 Dec 2023 22:23:36 +0000 (23:23 +0100)]
extensions-tool: Include enabled info in details

Both an extension's ACTIVE state and whether it is enabled can
be interesting, so include both when displaying extension details.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>

2 years agoextensions-tool: Rename ENABLED/DISABLED states
Florian Müllner [Thu, 21 Dec 2023 20:03:41 +0000 (21:03 +0100)]
extensions-tool: Rename ENABLED/DISABLED states

Follow the update terminology used by the extension system, in
particular when displaying extension details to the user.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>

2 years agoextensions-app: Add compat code for older shell versions
Florian Müllner [Tue, 19 Dec 2023 23:17:29 +0000 (00:17 +0100)]
extensions-app: Add compat code for older shell versions

The Extensions app is also distributed as flatpak, so we cannot
assume that its version matches the shell. In order to not show
all extensions as disabled when running under a shell version that
doesn't include the `enabled` property yet, add a fallback based
on the current state.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>

2 years agoextensions-app: Use new 'enabled' property
Florian Müllner [Tue, 12 Sep 2023 12:25:03 +0000 (14:25 +0200)]
extensions-app: Use new 'enabled' property

The switch for enabling/disabling extensions currently bases its
state on the extension's ACTIVE state.

This is problematic in the enabled-but-inactive case, because
activating the switch tries to change the state from off to on,
which leads to enabling an already enabled extension (an obvious
no-op).

The new `enabled` property allows us to do better, and use delayed
state changes where the switch position represents the `enabled`
state, and the trough color whether the extension is ACTIVE.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>

2 years agoextensionSystem: Allow changing extensions in ERROR state
Florian Müllner [Tue, 19 Dec 2023 23:02:35 +0000 (00:02 +0100)]
extensionSystem: Allow changing extensions in ERROR state

While an extension's actual state can no longer change once it is
in ERROR state, its requested state can. In fact, disabling an
erroneous extension is highly recommended, so that it doesn't cause
problems again on the next login.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>

2 years agoextensionSystem: Add 'enabled' property
Florian Müllner [Tue, 12 Sep 2023 12:11:55 +0000 (14:11 +0200)]
extensionSystem: Add 'enabled' property

Unlike `state` which represents the actual state, the new property
reflects the desired state, i.e. whether an extension should be
enabled according to the settings.

The Extension app will soon use it to improve its handling of the
case where the two mismatch (e.g. extension errors).

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>

2 years agoextensionSytem: Rename ENABLED/DISABLED states
Florian Müllner [Thu, 21 Dec 2023 17:59:33 +0000 (18:59 +0100)]
extensionSytem: Rename ENABLED/DISABLED states

The ENABLED state means that an extension's `enable()` method
was called successfully.

This usually matches whether an extension *should* be enabled
according to the enabled-extensions/disabled-extensions settings,
but not necessarily: If an extension had an error or does not
support the currently active mode, its actual state is different.

We currently only expose the actual state to external tooling,
but whether an extension should be enabled is relevant as well,
for example to disable a lock-screen only extension from the
regular session.

For that purpose we will expose a separate `enabled` property.
To avoid confusion with the existing states, change the exposed
names to (IN)ACTIVE.

This does not affect the D-Bus API, as the numeric values of
the states remain unchanged.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7004

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3073>

2 years agodata: Update symbolic assets for pagination buttons
Sam Hewitt [Tue, 2 Jan 2024 18:49:33 +0000 (15:19 -0330)]
data: Update symbolic assets for pagination buttons

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3085>

2 years agoappMenu: Move setApp to null before destroy
Jonian Guveli [Sun, 31 Dec 2023 18:30:11 +0000 (20:30 +0200)]
appMenu: Move setApp to null before destroy

Calling `setApp` after the menu has been destroyed results in error.
Moving the method before `super.destroy()` fixes the issue.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2998>

2 years agoanimation: Use appropriate spinner asset in light variant
Florian Müllner [Wed, 21 Jun 2023 15:47:13 +0000 (17:47 +0200)]
animation: Use appropriate spinner asset in light variant

Ideally we would replace the sliced-image based animation with a
themed `process-working-symbolic` icon and rotate it, so the spinner
simply picks up the current foreground color.

Unfortunately the `repeat-count` property does not work for rotations,
so to fix the broken spinner in the light variant
in the meantime, include assets for both variants and swap them
out at runtime.

Not everything in the light variant is actually light (overview,
OSDs, ...), so use a simple heuristic on the text color to decide
which asset to use.

Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6783

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3080>

2 years agoanimation: Save file and dimensions in properties
Florian Müllner [Sun, 24 Dec 2023 10:11:14 +0000 (11:11 +0100)]
animation: Save file and dimensions in properties

The properties passed to the constructor are currently used
directly in anonymous functions. Store them in properties
instead, so they become accessible outside the constructor,
including for changing them.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3080>

2 years agowindowManager: Add shortcuts to open new window of nth pinned app
Leleat [Tue, 4 May 2021 10:58:00 +0000 (12:58 +0200)]
windowManager: Add shortcuts to open new window of nth pinned app

Add new shortcuts to open a new instance of an app by pressing
Super + Ctrl + Number. This is analogous to ctrl-activating
(LMB/Enter) an app icon.

Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4129

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1829>

2 years agodata: Update descriptions of switch-to-app-n shortcuts
Florian Müllner [Sat, 23 Dec 2023 22:03:49 +0000 (23:03 +0100)]
data: Update descriptions of switch-to-app-n shortcuts

The user-visibility terminology switched from "favorite" to
"pin"/"unpin" a while ago, so update the description accordingly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1829>

2 years agoextensions-app: Restore developer_name
Sabri Ünal [Sat, 23 Dec 2023 21:39:32 +0000 (00:39 +0300)]
extensions-app: Restore developer_name

The newly added developer name syntax appears not implemented
across related platforms: GNOME Software, Flathub, etc.

There is no harm in using both deprecated and newly introduced
tags together, and neither appstream-glib nor appstreamcli
fails to validate this usage.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3079>

2 years agoextension-app: Improve appdata for AppStream 1.0
Sabri Ünal [Thu, 21 Dec 2023 15:58:16 +0000 (18:58 +0300)]
extension-app: Improve appdata for AppStream 1.0

- Use the `<developer><name>` tag instead of the deprecated `<developer_name>`
- Implement appstreamcli for extra appdata validation
- Fix a release description
- Update the donation URL
- Add the translation tag

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3071>

2 years agomain: Override global logError() function
Florian Müllner [Thu, 21 Dec 2023 17:43:17 +0000 (18:43 +0100)]
main: Override global logError() function

logError() prints an exception with an optional prefix, and is
used fairly commonly through-out the code base.

The problem is that by being defined in gjs, it uses "Gjs" as the
GLib log domain, not our own as expected.

Address this by adding a small override that implements the function
with console.error().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3072>

2 years agoscreenshot: Add and implement new D-Bus method
Georges Basile Stavracas Neto [Sat, 28 Oct 2023 22:21:05 +0000 (19:21 -0300)]
screenshot: Add and implement new D-Bus method

The new InteractiveScreenshot() D-Bus method is implemented using
the signals introduced by the previous commit, and is fundamentally
very simple: take the screenshot, and return the GFile URI.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2999>

2 years agoscreenshot: Add signals to ScreenshotUI
Georges Basile Stavracas Neto [Sat, 28 Oct 2023 22:18:53 +0000 (19:18 -0300)]
screenshot: Add signals to ScreenshotUI

These signals will let the yet to be introduced D-Bus method to
be notified of when either a screenshot has been taken, or if
the screenshot UI has been closed without taking a screenshot.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2999>

2 years agoscreenshot: Add SCREENSHOT_ONLY UI mode
Georges Basile Stavracas Neto [Fri, 15 Dec 2023 20:23:51 +0000 (17:23 -0300)]
screenshot: Add SCREENSHOT_ONLY UI mode

Add a screenshot-exclusive mode that makes the screencast button
unreactive, and therefore disables screencasting. It doesn't change
the visibility of the button though, as that's done by the codepath
that checks if screencasting is supported.

This will be used by the D-Bus callback to take interactive
screenshots.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2999>

2 years agoscreenshot: Make captureScreenshot() return the GFile
Georges Basile Stavracas Neto [Sat, 28 Oct 2023 22:14:39 +0000 (19:14 -0300)]
screenshot: Make captureScreenshot() return the GFile

Make the captureScreenshot() auxiliary function return the GFile at
which the texture was saved. This file will be used to return the
screenshot URI to the new D-Bus method to take interactive
screenshots.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2999>

2 years agoextensions-app: Update metainfo
Florian Müllner [Wed, 20 Dec 2023 14:01:19 +0000 (15:01 +0100)]
extensions-app: Update metainfo

After the last rounds of redesign, it's time to update
the appdata accordingly:

- update screenshots
- add screenshot captions
- point homepage to apps.gnome.org
- mark as mobile adaptive

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>

2 years agoextensions-app: Overhaul search
Florian Müllner [Wed, 20 Dec 2023 13:32:31 +0000 (14:32 +0100)]
extensions-app: Overhaul search

Instead of awkwardly filtering two different lists, use a separate
search page that filters a single list, similar to what libadwaita
does for preference windows.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>

2 years agoextensions-app: Use ListModel to track extensions
Florian Müllner [Tue, 19 Dec 2023 17:57:37 +0000 (18:57 +0100)]
extensions-app: Use ListModel to track extensions

Manually adding and removing rows to dynamic lists is rather
old-fashioned, GTK 4 strongly encourages the use of models.

Modernize the code by exposing extensions as ListModel, and
bind it to the two lists with appropriate filters.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>

2 years agoextensions-app: Use property bindings in row
Florian Müllner [Tue, 19 Dec 2023 17:57:37 +0000 (18:57 +0100)]
extensions-app: Use property bindings in row

Now that extensions are represented as GObjects, we can update
the UI via property bindings instead of manually handling the
logic in the code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>

2 years agoextensions-app: Bind actions' enabled properties
Florian Müllner [Tue, 19 Dec 2023 01:35:33 +0000 (02:35 +0100)]
extensions-app: Bind actions' enabled properties

Most properties that determine the availability of an action are
not expected to change, but now that extensions are represented
as a GObject, we can just generically set up bindings for all
actions instead of explicitly tracking the properties that we
expect to change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>

2 years agoextensions-app: Turn Extension into a GObject
Florian Müllner [Tue, 19 Dec 2023 17:45:04 +0000 (18:45 +0100)]
extensions-app: Turn Extension into a GObject

This makes the Extension class usable as item-type in models,
and allows us to use property bindings.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>

2 years agoextensions-app: Split out ExtensionManager
Florian Müllner [Mon, 18 Dec 2023 19:20:26 +0000 (20:20 +0100)]
extensions-app: Split out ExtensionManager

The extension handling is currently intertwined with the UI.

Splitting it out provides a clearer separation, and will allow
us to switch to a model-based UI later.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>

2 years agoextensions-app: Move classes to their own files
Florian Müllner [Tue, 19 Dec 2023 14:14:19 +0000 (15:14 +0100)]
extensions-app: Move classes to their own files

Using a single source file is getting unwieldy, so start
splitting it up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>

2 years agoextensions-app: Stop simulating Shell.global
Florian Müllner [Tue, 19 Dec 2023 00:48:01 +0000 (01:48 +0100)]
extensions-app: Stop simulating Shell.global

ExtensionUtils no longer relies on the global object, so we don't
have to simulate it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>

2 years agoextensions-app: Use console for logging
Florian Müllner [Tue, 19 Dec 2023 12:11:11 +0000 (13:11 +0100)]
extensions-app: Use console for logging

This allows us to use different log levels, and an appropriate
log domain.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3067>

2 years agopanel: Ensure signal is disconnected when the panel is destroyed
Julian Sparber [Tue, 19 Dec 2023 10:48:54 +0000 (11:48 +0100)]
panel: Ensure signal is disconnected when the panel is destroyed

This fixes a warning when terminating GNOME Shell

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3064>

2 years agoextensionSystem: Add debug logging
Florian Müllner [Fri, 15 Dec 2023 17:05:43 +0000 (18:05 +0100)]
extensionSystem: Add debug logging

Now that we can use console.debug() to log messages that aren't
shown by default, we can be a lot more verbose without spamming
the system log.

Use that to all extension state changes, which can be useful for
debugging.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3058>

2 years agoextensions-app: Stop setting description tooltip
Florian Müllner [Tue, 19 Dec 2023 00:54:10 +0000 (01:54 +0100)]
extensions-app: Stop setting description tooltip

We no longer ellipsize the description label, so the tooltip
no longer has a purpose.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3051>

2 years agoextensions-app: Use details popover
Florian Müllner [Sun, 10 Dec 2023 22:21:38 +0000 (23:21 +0100)]
extensions-app: Use details popover

Showing all the extension info and possible actions in every
row is fairly noisy, and doesn't match the usual list patterns.

Streamline the UI by moving the actions and most of the info into
a details popover, so the rows themselves get closer to the
standard pattern.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7119

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3051>

2 years agoextension-app: Remove tooltips from row suffixes
Florian Müllner [Mon, 11 Dec 2023 16:52:25 +0000 (17:52 +0100)]
extension-app: Remove tooltips from row suffixes

The updates/error icons are now interactive, and have more information
in the corresponding popover than could be covered
by a tooltip.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3051>

2 years agoextensions-app: Use less concise error strings
Florian Müllner [Mon, 11 Dec 2023 00:41:46 +0000 (01:41 +0100)]
extensions-app: Use less concise error strings

Now that the error information is displayed in a separate popover,
we can afford to be more verbose.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3051>

2 years agoextensions-app: Make error/update icon interactive
Florian Müllner [Sun, 10 Dec 2023 22:59:04 +0000 (23:59 +0100)]
extensions-app: Make error/update icon interactive

Both icons are not immediately obvious, and the context provided
by the tooltip can be hard to discover.

Address this by making the icons interactive, and provide further
information in a popover.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3051>

2 years agoextensions-app: Set labelled-by relation for lists
Florian Müllner [Tue, 12 Dec 2023 16:03:14 +0000 (17:03 +0100)]
extensions-app: Set labelled-by relation for lists

We use our own lists so we can do filtering, but that means we
lose the built-in relation with the group's title.

Set the relation ourselves, so the two lists are described correctly
in screen readers.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3051>

2 years agoextensions-app: Update group headers
Florian Müllner [Sun, 10 Dec 2023 23:42:50 +0000 (00:42 +0100)]
extensions-app: Update group headers

Change titles to the clearer "User/System Extensions" and drop the
description.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3051>